home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs07.d81 / tokeniz.prg (.txt) < prev    next >
Commodore BASIC  |  2009-10-10  |  4KB  |  155 lines

  1. 1 A$="":FORI=1TO255:A$=A$+"*":NEXT
  2. 2 DATA 160,2,177,45,153,137,0,200,192
  3. 3 DATA 6,208,246,162,1,32,198,255
  4. 4 DATA 32,228,255,201,13,240,15,164
  5. 5 DATA 142,145,140,200,132,142,196,139,240,4,165,144,240,234,76,204,255
  6. 6 FORI=896TO937:READJ:POKEI,J:NEXT
  7. 11 GOSUB460
  8. 15 INPUT"INPUT FILE";I$
  9. 25 OPEN15,8,15,"I":OPEN1,8,2,"0:"+I$+",S,R"
  10. 30 INPUT#15,E,E$:IFETHENPRINTE$:RUN
  11. 35 INPUT"OUTPUT FILE";O$
  12. 45 OPEN2,8,9,"0:"+O$+",P,W"
  13. 50 INPUT#15,E,E$:IFETHENPRINTE$:CLOSE2:GOTO35
  14. 55 PRINT#2,CHR$(1)CHR$(8);
  15. 60 TI$="000000":SYS896:SS=ST
  16. 61 L=PEEK(142):L$=LEFT$(A$,L):PRINTL$
  17. 65 IFVAL(L$)ORLEFT$(L$,1)="0"THEN80
  18. 70 IFL<2THEN150
  19. 75 L$=MID$(L$,2):L=L-1:GOTO65
  20. 80 FORJ=2TOL:A=ASC(MID$(L$,J)):IFA>47THENIFA<58THENNEXT
  21. 85 N=VAL(LEFT$(L$,J-1)):L$=MID$(L$,J+1):L=LEN(L$):IFL=0THEN150
  22. 90 H%=N/256:L%=255ANDN
  23. 95 PRINT#2,"22";CHR$(L%)CHR$(H%);:Q=0:O$=""
  24. 100 FORP=1TOL:S=ASC(MID$(L$,P))
  25. 105 IFS=34THENQ=NOTQ
  26. 110 IFS=58THENIFQ=131THENQ=0
  27. 115 IFQTHEN140
  28. 125 GOSUB160:IFS=143ORS=131THENQ=S
  29. 140 O$=O$+CHR$(S)
  30. 145 NEXT:PRINT#2,O$;CHR$(0);:PRINTTI
  31. 150 IFSS=0THEN60
  32. 155 PRINT#2,CHR$(0)CHR$(0);:CLOSE1:CLOSE2:CLOSE15:END
  33. 160 FORC=1TO26
  34. 170 IFT(C)<>S THENNEXT:RETURN
  35. 175 ONCGOTO200,201,202,203,204,205,206,207
  36. 176 C=C-8
  37. 180 ONCGOTO210,220,230,240,250,260,270,280,290,300,310,320,330,340,350,360,370,380
  38. 190 PRINT"CRASHED":GOTO155
  39. 200 S=170:RETURN
  40. 201 S=171:RETURN
  41. 202 S=172:RETURN
  42. 203 S=173:RETURN
  43. 204 S=174:RETURN
  44. 205 S=177:RETURN
  45. 206 S=178:RETURN
  46. 207 S=179:RETURN
  47. 210 T1$=MID$(L$,P,3)
  48. 211 IFT1$="AND"THENS=175:P=P+2:RETURN
  49. 212 IFT1$="ABS"THENS=182:P=P+2:RETURN
  50. 213 IFT1$="ATN"THENS=193:P=P+2:RETURN
  51. 214 IFT1$="ASC"THENS=198:P=P+2
  52. 215 RETURN
  53. 220 T1$=MID$(L$,P,5)
  54. 221 IFT1$="CLOSE"THENS=160:P=P+4:RETURN
  55. 222 T1$=LEFT$(T1$,4)
  56. 223 IFT1$="CONT"THENS=154:P=P+3:RETURN
  57. 224 IFT1$="CHR$"THENS=199:P=P+3:RETURN
  58. 225 T1$=LEFT$(T1$,3)
  59. 226 IFT1$="CLR"THENS=156:P=P+2:RETURN
  60. 227 IFT1$="CMD"THENS=157:P=P+2:RETURN
  61. 228 IFT1$="COS"THENS=190:P=P+2
  62. 229 RETURN
  63. 230 T1$=MID$(L$,P,4)
  64. 231 IFT1$="DATA"THENS=131:P=P+3:RETURN
  65. 232 T1$=LEFT$(T1$,3)
  66. 233 IFT1$="DIM"THENS=134:P=P+2:RETURN
  67. 234 IFT1$="DEF"THENS=150:P=P+2
  68. 235 RETURN
  69. 240 T1$=MID$(L$,P,3)
  70. 241 IFT1$="END"THENS=128:P=P+2:RETURN
  71. 242 IFT1$="EXP"THENS=189:P=P+2
  72. 243 RETURN
  73. 250 T1$=MID$(L$,P,3)
  74. 251 IFT1$="FOR"THENS=129:P=P+2:RETURN
  75. 252 IFT1$="FRE"THENS=184:P=P+2:RETURN
  76. 253 IFLEFT$(T1$,2)="FN"THENS=165:P=P+1
  77. 254 RETURN
  78. 260 IFMID$(L$,P,5)="GOSUB"THENS=141:P=P+4:RETURN
  79. 261 IFMID$(L$,P,4)="GOTO"THENS=137:P=P+3:RETURN
  80. 262 IFMID$(L$,P,3)="GET"THENS=161:P=P+2:RETURN
  81. 263 IFMID$(L$,P,2)="GO"THENS=203:P=P+1
  82. 264 RETURN
  83. 270 IFMID$(L$,P,6)="INPUT#"THENS=132:P=P+5:RETURN
  84. 271 IFMID$(L$,P,5)="INPUT"THENS=133:P=P+4:RETURN
  85. 272 IFMID$(L$,P,3)="INT"THENS=181:P=P+2:RETURN
  86. 273 IFMID$(L$,P,2)="IF"THENS=139:P=P+1
  87. 274 RETURN
  88. 280 T1$=MID$(L$,P,5)
  89. 281 IFT1$="LEFT$"THENS=200:P=P+4:RETURN
  90. 282 T1$=LEFT$(T1$,4)
  91. 283 IFT1$="LOAD"THENS=147:P=P+3:RETURN
  92. 284 IFT1$="LIST"THENS=155:P=P+3:RETURN
  93. 285 T1$=LEFT$(T1$,3)
  94. 286 IFT1$="LET"THENS=136:P=P+2:RETURN
  95. 287 IFT1$="LOG"THENS=188:P=P+2:RETURN
  96. 288 IFT1$="LEN"THENS=195:P=P+2
  97. 289 RETURN
  98. 290 IFMID$(L$,P,4)="MID$"THENS=202:P=P+3
  99. 291 RETURN
  100. 300 IFMID$(L$,P,4)="NEXT"THENS=130:P=P+3:RETURN
  101. 301 T1$=MID$(L$,P,3)
  102. 302 IFT1$="NEW"THENS=162:P=P+2:RETURN
  103. 303 IFT1$="NOT"THENS=168:P=P+2
  104. 304 RETURN
  105. 310 IFMID$(L$,P,4)="OPEN"THENS=159:P=P+3:RETURN
  106. 311 T1$=MID$(L$,P,2)
  107. 312 IFT1$="ON"THENS=145:P=P+1:RETURN
  108. 313 IFT1$="OR"THENS=176:P=P+1
  109. 314 RETURN
  110. 320 IFMID$(L$,P,6)="PRINT#"THENS=152:P=P+5:RETURN
  111. 321 IFMID$(L$,P,5)="PRINT"THENS=153:P=P+4:RETURN
  112. 322 T1$=MID$(L$,P,4)
  113. 323 IFT1$="POKE"THENS=151:P=P+3:RETURN
  114. 324 IFT1$="PEEK"THENS=194:P=P+3:RETURN
  115. 325 IFLEFT$(T1$,3)="POS"THENS=185:P=P+2
  116. 326 RETURN
  117. 330 IFMID$(L$,P,7)="RESTORE"THENS=140:P=P+6:RETURN
  118. 331 T1$=MID$(L$,P,6)
  119. 332 IFT1$="RETURN"THENS=142:P=P+5:RETURN
  120. 333 IFT1$="RIGHT$"THENS=201:P=P+5:RETURN
  121. 334 IFLEFT$(T1$,4)="READ"THENS=135:P=P+3:RETURN
  122. 335 T1$=LEFT$(T1$,3)
  123. 336 IFT1$="RUN"THENS=138:P=P+2:RETURN
  124. 337 IFT1$="REM"THENS=143:P=P+2:RETURN
  125. 338 IFT1$="RND"THENS=187:P=P+2
  126. 339 RETURN
  127. 340 T1$=MID$(L$,P,4):IFT1$="STOP"THENS=144:P=P+3:RETURN
  128. 341 IFT1$="SAVE"THENS=148:P=P+3:RETURN
  129. 342 IFT1$="SPC("THENS=166:P=P+3:RETURN
  130. 343 IFT1$="STEP"THENS=169:P=P+3:RETURN
  131. 344 IFT1$="STR$"THENS=196:P=P+3:RETURN
  132. 345 T1$=LEFT$(T1$,3):IFT1$="SYS"THENS=158:P=P+2:RETURN
  133. 346 IFT1$="SGN"THENS=180:P=P+2:RETURN
  134. 347 IFT1$="SQR"THENS=186:P=P+2:RETURN
  135. 348 IFT1$="SIN"THENS=191:P=P+2
  136. 349 RETURN
  137. 350 T1$=MID$(L$,P,4)
  138. 351 IFT1$="TAB("THENS=163:P=P+3:RETURN
  139. 352 IFT1$="THEN"THENS=167:P=P+3:RETURN
  140. 353 IFLEFT$(T1$,3)="TAN"THENS=192:P=P+2:RETURN
  141. 354 IFLEFT$(T1$,2)="TO"THENS=164:P=P+1
  142. 355 RETURN
  143. 360 IFMID$(L$,P,3)="USR"THENS=183:P=P+2
  144. 361 RETURN
  145. 370 IFMID$(L$,P,6)="VERIFY"THENS=149:P=P+5:RETURN
  146. 371 IFMID$(L$,P,3)="VAL"THENS=197:P=P+2
  147. 372 RETURN
  148. 380 IFMID$(L$,P,4)="WAIT"THENS=146:P=P+3
  149. 381 RETURN
  150. 460 DATA43,45,42,47,94,62
  151. 470 DATA61,60,65,67,68,69
  152. 480 DATA70,71,73,76,77,78
  153. 490 DATA79,80,82,83,84,85,86,87
  154. 510 DIMT(26):FORI=1TO26:READT(I):NEXT:RETURN
  155.